The phrase “cloud computing” is one of many references to the concept of seeking to provide a diverse set of Internet based “services” to a broad variety of clients. Often the term “cloud” is used to refer to accessing resources on the Internet; cloud computing generally refers to an abstraction of resources and the network infrastructure needed to access resources of the cloud. Cloud computing is an “on-demand” environment including characteristics previously associated with many utility and grid computing models. Cloud computing generally tries to harness ever increasing computing power and sophistication in computing technologies. The terms “service” or “services” are used to refer to such abstracted resources. Various services, such as ones provided by Amazon.Com, Inc. (e.g., Simple Storage Service (S3)), Google Inc. (e.g., Google File System (GFS)), or Microsoft Corporation (e.g., Microsoft Office Online) represent well known cloud computing resources typically accessed from a web browser or other light weight client through the cloud. Unlike a traditional application program, where the application and its data are typically stored on a local storage, with cloud services, this information is typically stored on remote (corporate) servers. Generally speaking, cloud computing encompasses any subscription based or hosted service accessible over the Internet.
Cloud applications are generally broadly divided into categories, such as:
(1) Web Services, e.g., software designed to be interoperable machine-to-machine using a well defined software interface such as Web Services Description Language (WSDL), Application Programming Interface (API), or other standardized communication protocol;
(2) Software as a Service (SaaS), which is essentially just delivery/on demand utilization of application software, e.g., an email application program simultaneously accessed through a browser by thousands of customers;
(3) Infrastructure-as-a-Service (IaaS), in which clients are provided with virtual servers and/or on-demand resources, such as storage, that are paid for as needed akin to consuming a utility resource; and
(4) Platform as a Service (PaaS), for allowing developers to deploy applications hosted on cloud-based infrastructure.
In cloud computing, a client device, software, etc. often needs to connect to different clouds to receive different services. Unfortunately, each cloud provider does not own the user's business and there is no standardized or seamless inter-connection among services to which a user or client may subscribe.